<?php
/**
 * Created by PhpStorm.
 * Author: sitenv@aliyun.com
 * CreateTime: 2020/12/24 14:30
 * Blog：www.myblogs.xyz
 */

namespace app\common\logic;


class Common
{
    protected $data = [];
    protected $error = '';

    public function __construct($param)
    {
        $this->data = $param;
    }

    public function getError()
    {
        return $this->error;
    }

    /**
     * 附加参数
     * @param int $status
     * @param array $data
     * @param string $message
     */
    protected function jsonReturn($status = 0, $data = [], $message = '')
    {
        $jsonData = [
            'status'   => $status,
            'data'     => $data,
            'message'  => L($message)
        ];
        header('Content-Type:application/json; charset=utf-8');
        exit(json_encode(array_merge($jsonData)));
    }

    /**
     * 请求验证失败
     * status 9999：请求验证失败
     * @param string $message
     * @param array $data
     */
    protected function jsonFail($message = '', $data = [])
    {
        return $this->jsonReturn(9999, (object)$data, $message);
    }

    /**
     * 操作数据成功
     * status 1000：操作数据成功；可能有数据返回对象形式
     * @param string $message
     * @param array $data
     */
    protected function jsonSuccess($message = '', $data = [])
    {
        return $this->jsonReturn(1000, (object)$data, $message);
    }

    /**
     * 操作数据失败
     * status 1001：操作数据失败
     * @param string $message
     * @param array $data
     */
    protected function jsonError($message = '', $data = [])
    {
        return $this->jsonReturn(1001, (object)$data, $message);
    }

    /**
     * 获取数据成功
     * status 1000：获取数据成功；肯定有数据返回对象数组形式
     * @param array $data
     * @param string $message
     */
    protected function jsonResult($data = [], $message = '')
    {
        return $this->jsonReturn(1000, $data, $message);
    }

    /**
     * 没有更多数据
     * status 1001：没有更多数据；空对象数组数据
     * @param array $data
     * @param string $message
     */
    protected function jsonEmpty($message = '', $data = [])
    {
        return $this->jsonReturn(1001, $data, $message);
    }

    /**
     * 图片上传
     * @param string $img
     * @param string $type
     * @param string $file_type
     * @return string
     */
    protected function upload($img = '', $type = 'face', $file_type = 'jpg')
    {
        if (empty($img)) return '';
        // 保存路径
        $name = date('Y/m/d/', NEW_TIME);
        $path = '/static/upload/' . $type . '/';
        $dir = getcwd() . $path . $name;
        if (!is_dir($dir)) {
            mkdir($dir, 0755, true);
        }
        // 文件名称
        $filename = uniqid() . '.' . $file_type;
        $file = $dir . $filename;
        $rows = file_put_contents($file, base64_decode($img));
        // 判断图片是否上传成功
        if(is_null($rows)){
            $this->jsonError('uploadFailed');
        }
        return $name . $filename;
    }

}